//************************************************* ****************
// Autores: Mayra Yucely Beb Carne: 12.537
// Yoly Moreno Carne: 12519
// Samantha Catun Carne: 12383
// Seccion:
// Fecha: 08/07/2013


public class Radio {
    /**
     * Estado del radio, cuando la variable esta en true esta encendido el radio
     * cuando la variable esta en false esta apagado
     **/
    private boolean estado;
    private Boton[] botones;
    private double estaciones;
    private String frecuencia;
    
    /**
     * Constructor de Clase sin parametros
     * Establece el estado del radio como apagado y inicializa el arreglo de 
     * botones
     */
    public Radio(){
        estado = false;
        botones = new Boton[12];
    }


    public void setEstado(boolean estado) {
        this.estado = estado;
    }

    public void setBotones(Boton[] botones) {
        this.botones = botones;
    }

    public void setEstaciones(double estaciones) {
        this.estaciones = estaciones;
    }

    public void setFrecuencia(String frecuencia) {
        this.frecuencia = frecuencia;
    }

    public boolean getEstado() {
        return estado;
    }

    public Boton[] getBotones() {
        return botones;
    }

    public double getEstaciones() {
        return estaciones;
    }

    public String getFrecuencia() {
        return frecuencia;
    }
    
        
    /**
     * Enciende el radio
     */
    public void encender(){
        estado = true;
    }
    
    /**
     * Apaga el radio
     */
    public void apagar(){
        estado = false;
    }

    public void seleccionarEstacion(double e) throws Exception{
        if(e >= 530 && e <= 1610 && e % 10 == 0){
            estaciones = e;
        }else if (e >= 87.9 && e <= 107.9 && ((e*10) % 2) == 0){
            estaciones = e;
        }else{
            throw new Exception("Estacion invalida.");
        }
    }
    
    public void LeerEstacion(int n) throws Exception{
        if(n >= 0 && n <= 12){
           botones[n].set(frecuencia, estaciones);
        }else{
            throw new Exception("No es un numero de boton valido");
        }
    }
    
    public void modificarEstacion(String f, double e) throws Exception{        
        if(((f.equals("AM") && (e >= 530 && e <= 1610 && e % 10 == 0)))||( f.equals("FM")&& (e >= 87.9 && e <= 107.9 )&&(((e*10)+1)%2)==0)){
                frecuencia=f;
                estaciones = e;
                }
            else{
                    throw new Exception("Frecuencia Invalida.");
                                                            }}
        
    
    
    
    public int agregarEstacion(int pos, String f, double x) throws Exception
    {
          if(pos != -1 && (f.equals("AM") || f.equals("FM"))){ 
            if((x >= 530 && x <= 1610 && x % 10 == 0) || 
                    (x >= 87.9 && x <= 107.9 && ((x*10) % 2) == 0)){

                botones[pos].set(f, x);
            }else{
                throw new Exception("Estacion invalida.");
            }
        }else{
            throw new Exception("Frecuencia Invalida.");
        }
        return pos;
    }
}
